import { bsc } from "viem/chains";
import { bscTestnet } from "@/config/chainds";
import { Chain } from "wagmi";
import ASTRToken from "@/assets/images/ASTRToken.png";
import USDTToken from "@/assets/images/USDTToken.png";

export enum CoinEnum {
  "ASTR-USDT" = "ASTR-USDT",
}

export enum MSPID {
  LP = 0,
}

export enum PriceCate {
  Chainlink = "Chainlink",
  UniswapV2 = "UniswapV2",
}

export interface IPool {
  name: CoinEnum;
  icon1: string;
  icon2?: string;
  token: string;
  priceCategory: PriceCate;
  priceAddr?: string;
  decimals: number;
  pid: number;
  rewardPerSecond: string;
  ipo: string;
  tvl?: string;
  apr?: string;
  staked?: string;
  claimable?: string;
}

export interface IConfig {
  astr: string;
  usdt: string;
  lp: string;
  masterChief: string;
  ido: string;
  chainInfo: Chain;
  stakePools: any;
  userBind: string;
  nftMarket: string;
  nft: string;
  ls: string;
  lsc?: string;
  burn: string;
  nftMerge: string;
  awardCenter: string;
}

const config: Record<Chain["id"], IConfig> = {
  [bscTestnet.id]: {
    ido: "0x01",
    astr: "0x96B6dBeD7EC23BFeC4D33EE275C076Af8Ad7088D",
    usdt: "0xc759d761f5abC61055418e63AcB461ba13616031",
    lp: "0xc4Ed43a873c5343780d728628856FF5E84D47645",
    masterChief: "0x6BcF2b65E35B12E549caDa120e3680c8Fa9051Fe",
    userBind: "0xdd3a423b4ea56A00EDb81BbF44A9853F919c2355",
    nftMarket: "0x2649C1CC0432719A4CC8745fe29B69F5EEE757D7",
    nft: "0x3c3A5D9FDc13ab7758aCb7d3E24D53f932B2F9F4",
    ls: "0x751C8ab460fc11E049E22C42938C008855a23d42",
    lsc: "0x751C8ab460fc11E049E22C42938C008855a23d42",
    nftMerge: "0xEbF9a76B781ca969Af789E36071934849D827c6B",
    burn: "0x87c394D9075d61c077E032250F596Db81AF88Bcd",
    awardCenter: "0xCFA97f27986096739353e5645b8b64Fadb51c8FF",
    chainInfo: bscTestnet,
    stakePools: [
      {
        name: CoinEnum["ASTR-USDT"],
        icon1: ASTRToken,
        icon2: USDTToken,
        token: "0xc4Ed43a873c5343780d728628856FF5E84D47645",
        priceCategory: PriceCate.UniswapV2,
        decimals: 18,
        pid: MSPID.LP,
        rewardPerSecond: "1000000000000000000",
      },
    ],
  },
  [bsc.id]: {
    astr: "0x888827D2B6AB33303c6020d9714b1B0C0689a8dD",
    usdt: "0x55d398326f99059ff775485246999027b3197955",
    lp: "0x0228a9Ea7A35A4a2FeB4D57ACF243D7A7789c285",
    masterChief: "0xAa0dc1632Eb1dF964f192725508fb5338F1501b5",
    ido: "0x01",
    userBind: "0x1fBA4ae5A00e425EB1710aD61d571Ff0c82D0020",
    nftMarket: "0x077e1E0c96cBbFB604c8bF191C2849A196E7c9eb",
    nft: "0x47102C8ba0a61b47376617263C733b82F69121Dd",
    ls: "0xFbf6a7f193E49C647fe0911C0b9eEaFc78CBa318",
    nftMerge: "0x0506B34Fc076FA6A8c12e53cC0444BF1be33B713",
    burn: "0x8604b85220E6A42A6aB57ebF5064D4803ceeB2cA",
    awardCenter: "0x765e4fd6111E728CB6d7330C1D7a0e8cdc59559B",
    chainInfo: bsc,
    stakePools: [
      {
        name: CoinEnum["ASTR-USDT"],
        icon1: ASTRToken,
        icon2: USDTToken,
        token: "0x0228a9Ea7A35A4a2FeB4D57ACF243D7A7789c285",
        priceCategory: PriceCate.UniswapV2,
        decimals: 18,
        pid: MSPID.LP,
        rewardPerSecond: "50000000000000000",
      },
    ],
  },
};

export default config;
